-
Notifications
You must be signed in to change notification settings - Fork 82
[GITHUB] Update build-toolchain to use public VC6 from itsmattkc repo #931
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
shell: pwsh | ||
run: | | ||
Write-Host "Downloading VC6 Portable Installation" -ForegroundColor Cyan | ||
aws s3 cp s3://github-ci/VS6_VisualStudio6.7z VS6_VisualStudio6.7z --endpoint-url $env:AWS_ENDPOINT_URL | ||
Invoke-WebRequest -Uri https://github.com/itsmattkc/MSVC600/archive/refs/heads/master.zip -OutFile VS6_VisualStudio6.zip |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If itsmattkc takes the repo private, then this breaks. Are we allowed to fork this repository or is this illegal?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are already several forks of this repository. If itsmattkc decides to make the repository private or remove it, we can simply switch to another existing fork. Alternatively, we could revert to using the AWS backup if necessary.
But realistically, this repository has been public for almost five years, and we are talking about end-of-life software. I find it unlikely that it will be taken down at this point.
Regarding the legality of keeping a fork, I am not a lawyer, but as far as I know, simply maintaining a fork of freely distributed executables—without modifying or hacking the binaries—should not be illegal. However, if there are any concerns, we should seek legal advice to be certain.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If allowed, Superhackers should make their own fork
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess allowed would be based on whatever Microsoft says no? As it is their software, don't know if you still need a license for VS6. If you don't then we could just create our own repo and not even fork this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it would probably be better to have our own repo, that ways it's easier for people to get hold of a copy for local use as well and it keeps dependencies within the project as much as possible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can do that if someone can find out if that is ok to do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In legal terms what’s the difference between get vs6 from an s3 bucket and get it from any public repo?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What i can read me to, it looks like we would need a license and run the script locally. I believe the actions run on @tintinhamans's home server? So that should have the license?
@OmniBlade what are your thoughts on this? |
It does make it easier to do builds in our own forks, I'd be inclined to go with it and we either revert/fix it if the repo goes down and hope we don't need VC6 by the time that happens. Github is owned by Microsoft so while someone has directed their infrastructure to create the repo, its being served from Microsoft infrastructure to be run on Microsoft infrastructure. At worst they would just stop it if they took issue with it and its not really any different from what we are doing now? Probably legally more in the clear that having Amazons infrastructure provide copies, but still clear as mud. |
As mentioned, this would be really useful to run the CI in our own forks. Worst case would be we have to fix the CI if the source repository actually goes down, which I agree is very unlikely. The long-term plan is probably to drop VC6 altogether and move forward with VC2022, right? |
yes, therefore we shouldn't bother making our own fork/clone of the vc6 portable repo |
Ok. Shall we create a fork of itsmattkc in this organization and then link to that? |
No. Thats additional liability for us and not worth avoiding the small risk that the itsmattkc repo gets deleted before we drop vc6. worst case scenario even if it does get deleted, its not hard to mitigate. We can just use another repo or fallback to our current method |
Why is this branch not buildings anything? The CI is not triggered. Please rebase and push this branch. |
Done! |
shell: pwsh | ||
run: | | ||
Write-Host "Downloading VC6 Portable Installation" -ForegroundColor Cyan | ||
aws s3 cp s3://github-ci/VS6_VisualStudio6.7z VS6_VisualStudio6.7z --endpoint-url $env:AWS_ENDPOINT_URL | ||
Invoke-WebRequest -Uri https://github.com/itsmattkc/MSVC600/archive/refs/heads/master.zip -OutFile VS6_VisualStudio6.zip |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tomsons26
Regarding vs6 download change, I don't see masm in that repo, that probably isn't sp6 but rtm
[It would mean] Nonmatching codegen, possible new issues cause of compiler bugs fixed in service packs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we please make a binary diff of itsmattkc SP6 with our current SP6?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i checked c1.dll and the version number is 12.0.9782.0 which is the SP6 version
it says its a "Portable download of Microsoft Visual C++ 6.0 command line tools."
Thats why it doesn't have all the files
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I compated against OmniBlades portable version:
Mismatching files are
BSCMAKE.EXE 77886 2022.06.04 06:04:32 != 2024.02.05 16:19:58 77886 BSCMAKE.EXE
CVPACK.EXE 81979 2022.06.04 06:04:32 != 2024.02.05 16:19:58 81979 CVPACK.EXE
FCOUNT.BAT 169 2022.06.04 06:04:32 != 2024.02.05 16:19:58 178 FCOUNT.BAT
FCOVER.BAT 169 2022.06.04 06:04:32 != 2024.02.05 16:19:58 178 FCOVER.BAT
FTIME.BAT 169 2022.06.04 06:04:32 != 2024.02.05 16:19:58 178 FTIME.BAT
LCOUNT.BAT 348 2022.06.04 06:04:32 != 2024.02.05 16:19:58 359 LCOUNT.BAT
LCOVER.BAT 489 2022.06.04 06:04:32 != 2024.02.05 16:19:58 502 LCOVER.BAT
MAPSYM.EXE 39184 2022.06.04 06:04:32 != 2024.02.05 16:19:58 39184 MAPSYM.EXE
MC.EXE 25872 2022.06.04 06:04:32 != 2024.02.05 16:19:58 25872 MC.EXE
MIDL.EXE 673616 2022.06.04 06:04:32 != 2024.02.05 16:19:58 673616 MIDL.EXE
MKTYPLIB.EXE 91136 2022.06.04 06:04:32 != 2024.02.05 16:19:58 91136 MKTYPLIB.EXE
PLIST.EXE 61498 2022.06.04 06:04:32 != 2024.02.05 16:19:58 61498 PLIST.EXE
PREP.EXE 77880 2022.06.04 06:04:32 != 2024.02.05 16:19:58 77880 PREP.EXE
PROFILE.DLL 94270 2022.06.04 06:04:32 != 2024.02.05 16:19:58 94270 PROFILE.DLL
PROFILE.EXE 41022 2022.06.04 06:04:32 != 2024.02.05 16:19:58 41022 PROFILE.EXE
PROFILER.INI 2528 2022.06.04 06:04:32 != 2024.02.05 16:19:58 2658 PROFILER.INI
REBASE.EXE 59664 2022.06.04 06:04:32 != 2024.02.05 16:19:58 59664 REBASE.EXE
VCVARS32.BAT 954 2022.06.04 06:04:32 != 2024.02.05 16:19:58 989 VCVARS32.BAT
Include\
RPCPROXY.H 19006 2022.06.04 06:04:32 != 2024.02.05 16:20:00 19007 RPCPROXY.H
WINNT.H 252068 2022.06.04 06:04:32 != 2024.02.05 16:20:00 245610 WINNT.H
WINPERF.H 28649 2022.06.04 06:04:32 != 2024.02.05 16:20:00 28650 WINPERF.H
Lib\
MSJAVA.LIB 549908 2022.06.04 06:04:32 != 2024.02.05 16:20:01 226694 MSJAVA.LIB
MFC\SRC\
MFCINTL.MAK 4161 2022.06.04 06:04:32 != 2024.02.05 16:20:02 4312 MFCINTL.MAK
MFCISAPI.MAK 6375 2022.06.04 06:04:32 != 2024.02.05 16:20:02 6721 MFCISAPI.MAK
Missing files are
2024.02.05 16:20:03 513536 MasmRef.doc
2024.02.05 16:20:03 227307 procpack.chm
2024.02.05 16:20:03 22709 PPreadme.htm
Bin\
2024.02.05 16:19:58 21880 h2inc.err
2024.02.05 16:19:58 249344 h2inc.exe
2024.02.05 16:19:58 9687 ml.err
2024.02.05 16:19:58 385072 ml.exe
2024.02.05 16:19:58 180276 MSPDB60.DLL
Samples\Amd\Asdk\
2024.02.05 16:20:03 6725 adetect.h
2024.02.05 16:20:03 4534 adsp.h
2024.02.05 16:20:03 3353 amath.h
2024.02.05 16:20:03 2667 amatrix.h
2024.02.05 16:20:03 52438 amd3dx.h
2024.02.05 16:20:03 2097 amdlib.h
2024.02.05 16:20:03 3610 aquat.h
2024.02.05 16:20:03 3296 atrans.h
2024.02.05 16:20:03 3181 avector.h
2024.02.05 16:20:03 20575 detect.cpp
2024.02.05 16:20:03 15772 dsp_lib.cpp
2024.02.05 16:20:03 40781 idsp.cpp
2024.02.05 16:20:03 58188 imath.cpp
2024.02.05 16:20:03 27889 imatrx.cpp
2024.02.05 16:20:03 33664 iquat.cpp
2024.02.05 16:20:03 23507 itrans.cpp
2024.02.05 16:20:03 13042 ivect.cpp
2024.02.05 16:20:03 20939 math_lib.cpp
2024.02.05 16:20:03 16273 matrx_lib.cpp
2024.02.05 16:20:03 20466 quat_lib.cpp
2024.02.05 16:20:03 31119 testlib.cpp
2024.02.05 16:20:03 8089 trans_lib.cpp
2024.02.05 16:20:03 7998 vect_lib.cpp
Samples\Amd\Isdk\
2024.02.05 16:20:03 6725 adetect.h
2024.02.05 16:20:03 4532 adsp.h
2024.02.05 16:20:03 3457 amath.h
2024.02.05 16:20:03 2668 amatrix.h
2024.02.05 16:20:03 3610 aquat.h
2024.02.05 16:20:03 3296 atrans.h
2024.02.05 16:20:03 3181 avector.h
2024.02.05 16:20:03 20575 detect.cpp
2024.02.05 16:20:03 15723 dsp_lib.cpp
2024.02.05 16:20:03 35084 idsp.cpp
2024.02.05 16:20:03 58053 imath.cpp
2024.02.05 16:20:03 32369 imatrx.cpp
2024.02.05 16:20:03 2022 intrinsics.h
2024.02.05 16:20:03 27418 iquat.cpp
2024.02.05 16:20:03 22015 itrans.cpp
2024.02.05 16:20:03 11529 ivect.cpp
2024.02.05 16:20:03 20934 math_lib.cpp
2024.02.05 16:20:03 16273 matrx_lib.cpp
2024.02.05 16:20:03 20466 quat_lib.cpp
2024.02.05 16:20:03 31197 testlib.cpp
2024.02.05 16:20:03 8089 trans_lib.cpp
2024.02.05 16:20:03 7976 vect_lib.cpp
Samples\CPUID\
2024.02.05 16:20:03 8967 cpuid.c
2024.02.05 16:20:03 1041 cpuid.h
2024.02.05 16:20:03 859 main.c
Is this alright?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@aliendroid1 @xezon just for the records, i have this patch running under my fork.
The last build results:
https://github.com/fbraz3/GeneralsGameCode/actions/runs/16178498437
Execution logs:
Generals
GeneralsMD
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thats awesome cuz I had been trying so hard to get it to work without mspdb60.pdb. I want to figure out what makes this version work without it but not mine
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest we make binary comparison of the generated executables with the current VC6 and the new VC6. If they match, then it should be all good.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sigh, xeson's report is wrong. mspdb60.dll actually is not missing and is in fact in the itsmackrepo at it's default location.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like some files are in different folders, so they show as missing.
So we need to check if the produced executable files are identical to before. If yes, then this is safe. |
This pull request updates the build workflow to download the VC6 toolchain from a public repository.
Key changes:
This change makes the build process more secure and easier to reproduce for everyone.
TODO